package org.cbg.panel;

import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;

import javax.swing.BorderFactory;
import javax.swing.DefaultListModel;
import javax.swing.ImageIcon;
import javax.swing.JList;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.ScrollPaneConstants;

import org.come.until.CutButtonImage;
import org.come.until.ScrollUI;
import org.come.until.SrcollPanelUI;
import org.come.until.cbgSrcollPanelUI;

import com.tool.tcpimg.UIUtils;

/**
 * 可选框背景
 * 
 * @author Administrator
 * 
 */

public class TraslationSelectOptionJpanel extends JPanel {

    private String backPath;
    private int width, heigth;

    // 表格
    // private JTable table;
    // private DefaultTableModel defaultTableModel;

    private JList<String> jlist;
    private DefaultListModel<String> listModel;

    public JList<String> getJlist() {
        if (jlist == null) {
            jlist = new JList<String>();
            jlist.setSelectionBackground(new Color(122, 117, 112));
            jlist.setSelectionForeground(Color.white);
            jlist.setForeground(Color.white);
            jlist.setFont(UIUtils.TEXT_HY16);
            jlist.setBackground(UIUtils.Color_BACK); // 设置列表框为透明背景
            jlist.setOpaque(false);
            jlist.setModel(getListModel());
        }
        return jlist;
    }

    public void setJlist(JList<String> jlist) {
        this.jlist = jlist;
    }

    public DefaultListModel<String> getListModel() {
        if (listModel == null) {
            listModel = new DefaultListModel<String>();
        }
        return listModel;
    }

    public void setListModel(DefaultListModel<String> listModel) {
        this.listModel = listModel;
    }

    public String getBackPath() {
        return backPath;
    }

    public void setBackPath(String backPath) {
        this.backPath = backPath;
    }

    @Override
    public int getWidth() {
        return width;
    }

    public void setWidth(int width) {
        this.width = width;
    }

    public int getHeigth() {
        return heigth;
    }

    public void setHeigth(int heigth) {
        this.heigth = heigth;
    }

    // public JTable getTable() {
    // return table;
    // }
    //
    // public void setTable(JTable table) {
    // this.table = table;
    // }

    // public TraslationSelectOptionJpanel(int width, int heigth, String
    // backPath,
    // Object[][] rowData) {
    // // TODO Auto-generated constructor stub
    // this.width = width;
    // this.heigth = heigth;
    // this.backPath = backPath;
    // this.setPreferredSize(new Dimension(width, heigth));
    //
    // this.setOpaque(false);
    // // 滚动条
    // JScrollPane jScrollPane = new JScrollPane();
    //
    // jScrollPane.setPreferredSize(new Dimension((width - 6), heigth - 10));
    // // 表头（列名）
    // Object[] columnNames = { "姓名" };
    // // 创建一个表格，指定 所有行数据 和 表头
    // // Object [][] rowData = {
    // // {"张三"},
    // // {"John"},
    // // {"Sue"},
    // // {"Jane"},
    // // {"Joe"}
    // // };
    // defaultTableModel = new DefaultTableModel(rowData, columnNames) {
    // public boolean isCellEditable(int row, int column) {
    // return false;
    // }// 表格不允许被编辑
    //
    // };
    //
    // table = new JTable(defaultTableModel);
    // table.setPreferredSize(new Dimension((width - 30), rowData.length * 16));
    // // 不显示表头
    // // 头部实际上也是一个JTABLE，只有一行而已。
    // JTableHeader header = table.getTableHeader();// 获取头部
    // header.setPreferredSize(new Dimension(0, 0));
    // header.setOpaque(false);// 设置头部为透明
    // header.getTable().setOpaque(false);// 设置头部里面的表格透明
    //
    // table.getTableHeader().setVisible(false);
    // jScrollPane.add(table);
    // jScrollPane.getViewport().setOpaque(false);
    // jScrollPane.setViewportView(table);
    // Border jsbo = BorderFactory.createEmptyBorder();
    // jScrollPane.setBorder(jsbo);
    // jScrollPane.setOpaque(false);
    // jScrollPane
    // .setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
    // table.setOpaque(false);
    // DefaultTableCellRenderer render = new DefaultTableCellRenderer();
    // render.setOpaque(false); // 将渲染器设置为透明
    // // 将这个渲染器设置到fileTable里。这个设置在没有另外专门对column设置的情况下有效
    // // 若你对某个column特殊指定了渲染器，则对于这个column，它将不调用render渲染器
    // // 因此为了保证透明，如果你对column额外指定了渲染器，那么在额外的渲染器里也应该设置透明
    // table.setDefaultRenderer(Object.class, render);
    //
    // // fileTable.setRowHeight(25);
    // table.setAutoResizeMode(JTable.AUTO_RESIZE_NEXT_COLUMN);
    // table.setSelectionMode(ListSelectionModel.SINGLE_SELECTION);
    // table.setIntercellSpacing(new Dimension(0, 0));
    // table.setShowGrid(false);
    // // 设置表格字体颜色
    // table.setForeground(new java.awt.Color(248, 248, 255));// 设置字体颜色，但标题不会改变
    // // 设置选中行的颜色
    // table.setSelectionBackground(Color.cyan);
    // table.setSelectionForeground(new java.awt.Color(248, 248, 255));
    // // table.setEnabled(false);
    // // 设置头部透明
    // jScrollPane.setColumnHeaderView(table.getTableHeader());//
    // 设置头部（HeaderView部分）
    // jScrollPane.getColumnHeader().setOpaque(false);// 再取出头部，并设置为透明
    // jScrollPane.getVerticalScrollBar().setUI(new SrcollPanelUI());
    // jScrollPane.getVerticalScrollBar().setUnitIncrement(30);
    //
    // this.add(jScrollPane);
    // }

    public TraslationSelectOptionJpanel(int width, int heigth, String backPath, String[] rowData) {
        // TODO Auto-generated constructor stub
        this.width = width;
        this.heigth = heigth;
        this.backPath = backPath;
        this.setPreferredSize(new Dimension(width, heigth));
        this.setLayout(null);
        this.setOpaque(true);
        // 滚动条
        JScrollPane jScrollPane = new JScrollPane(getJlist());
        jScrollPane.setVerticalScrollBarPolicy(ScrollPaneConstants.VERTICAL_SCROLLBAR_ALWAYS);
        jScrollPane.getVerticalScrollBar().setUI(new cbgSrcollPanelUI());
        jScrollPane.getViewport().setOpaque(false);
        jScrollPane.setOpaque(false);
        jScrollPane.setBounds(0, 0, width + 2, heigth - 1);
        jScrollPane.setBorder(BorderFactory.createEmptyBorder());
        jScrollPane.setHorizontalScrollBarPolicy(ScrollPaneConstants.HORIZONTAL_SCROLLBAR_NEVER);
        this.add(jScrollPane);

        for (int i = 0; i < rowData.length; i++) {
            getListModel().add(i, rowData[i]);
        }

    }

    // public void setTraslationSelectOptionJpanel(
    // TraslationSelectOptionJpanel traslationSelectOptionJpanel,
    // Object[][] rowData) {
    //
    // JTable jTable = traslationSelectOptionJpanel.getTable();
    // DefaultTableModel tableModel = (DefaultTableModel) jTable.getModel();
    // for (int i = jTable.getRowCount() - 1; i >= 0; i--) {
    // tableModel.removeRow(0);
    // }
    // for (int i = 0; i < rowData.length; i++) {
    // tableModel.addRow(rowData[i]);
    // }
    // jTable.setPreferredSize(new Dimension((width - 30), rowData.length *
    // 17));
    // }

    private ImageIcon icon = CutButtonImage.getImage(backPath, width, heigth);

    @Override
    protected void paintComponent(Graphics g) {
        // TODO Auto-generated method stub
        super.paintComponent(g);
        icon = CutButtonImage.getImage(backPath, width, heigth);
        g.drawImage(icon.getImage(), 0, 0, width, heigth, this);

    }
}
